
#include <iostream>
#include <assert.h>
#include "auxiliares.h"
#include "sms.h"
#include "pregunta.h"
#include "trivia.h"
#include "gateway.h"
#include "telco.h"

//using namespace std;

int main(){
    TelCO t;
    t.mostrar(cout);
    /*Gateway g;
    //g.mostrar(cout);
    ifstream archivo("gato.txt");
    g.cargar(archivo);
    g.mostrar(cout);
    /*
    //Trivia t1;
    //Pregunta x;
    Lista<Pregunta> l1;
    Pregunta p("como te llamas?","rta1", 50);
    l1.agregarAtras(p);
    Pregunta p1("sos puto?","rta2", 100);
    l1.agregarAtras(p1);
    Pregunta p2("hora?","rta3", 70);
    l1.agregarAtras(p2);
    Pregunta p3("donde vivis?","rta4", 10);
    l1.agregarAtras(p3);
    Pregunta p4("Terminaremos el tp?","rta5", 5);
    l1.agregarAtras(p4);


    Lista<Keyword> k1, k2, kg;

    k1.agregarAtras("trivia1");
    k1.agregarAtras("otrakeytrivia1");
    k2.agregarAtras("trivia2");


    Trivia t1(k1,l1);

    Trivia t2(k2,l1);

    //t1.preguntas();
    //t1.keywords();
    //t1.ganadores();

    //t1.registrarJugador (125, "trivia1");
    //t1.registrarJugador (126, "trivia2");
    //t2.registrarJugador (125, "trivia2");
    //t2.registrarJugador (126, "trivia2");
    //cout << (t1.procesarRespuesta(125, "keyword No s")).texto() << endl;
    //cout << (t1.procesarRespuesta(126, "keyword No se")).texto() << endl;
    //cout << t1.posicion(125) << endl;
    //cout << t1.palabrasRecurrentes(0);

    /**t1.procesarRespuesta(126,"trivia1 rta1");
    t1.procesarRespuesta(126,"trivia1 rta1");
    t1.procesarRespuesta(126,"trivia1 rta1");
    t1.procesarRespuesta(126,"trivia1 rta1");
    t1.procesarRespuesta(126,"trivia1 rta1");
    t1.procesarRespuesta(126,"trivia1 rta1");
    t1.procesarRespuesta(126,"trivia1 rta1");
    t1.procesarRespuesta(126,"trivia1 rta1");
    t1.procesarRespuesta(125,"trivia1 rta1");
    t1.procesarRespuesta(125,"trivia1 rta1");
    t1.procesarRespuesta(125,"trivia1 rta1");
    t1.procesarRespuesta(125,"trivia1 rta1");
    t1.procesarRespuesta(125,"trivia1 rta1");
    t1.procesarRespuesta(125,"trivia1 rta1");

    t2.procesarRespuesta(125, "aguante rta1");
    t2.procesarRespuesta(125, "aguante rta2");
    **/
    /*
    k2.agregar("BAJA");
    k2.agregar("RANKING");
    k2.agregar("CHUPACHUPS");

    kg.agregar("BAJA");
    kg.agregar("RANKING");
    kg.agregar("CHUPACHUPS");

    Lista<Trivia> ts;
    ts.agregar(t1);
    ts.agregar(t2);

    //SMS orig(111,"boludeces boluuuuuudo ");
    Gateway g (111, ts, kg);
    //SMS sms = g.procesarMensaje (126, orig );
    //SMS sms1 = g.procesarComando(126, orig);
    //SMS sms2 = g.procesarComando(125, orig);

    //sms.mostrar(cout);

    //cout << g.seAnotanEnTodas() << endl;

    Lista<Gateway> gs;
    gs.agregar(g);
    Lista<Usuario> us;
    us.agregar(125);
    us.agregar(126);
    us.agregar(1);
    us.agregar(1);


    //cout << g.seAnotanEnTodas() << endl;


    /**
    ofstream archivoG("gateway.txt");
    g.guardar(archivoG);
    /*
    Gateway h;
    ifstream archivoG("gateway.txt");
    h.cargar(archivoG);
    h.mostrar(cout);
    /**/

    /*

    TelCO T(us, gs);
    //T.procesarMensaje(126, orig);
    //T.procesarMensaje(125, orig);
    T.procesarMensaje(1, SMS(111, "trivia1"));
    T.procesarMensaje(126, SMS(111, "trivia2"));
    T.procesarMensaje(1, SMS(111, "trivia1 rta1"));
    T.procesarMensaje(1, SMS(111, "trivia1 rta2"));
    T.procesarMensaje(1, SMS(111, "trivia2"));
    T.procesarMensaje(1, SMS(111, "trivia2 puto"));
    T.procesarMensaje(126, SMS(111, "trivia2 forro"));
    T.procesarMensaje(126, SMS(111, "trivia2 puto"));
    T.procesarMensaje(1, SMS(111, "trivia2 trolo"));
    T.procesarMensaje(1, SMS(111, "trivia2 rta3"));
    T.procesarMensaje(1, SMS(111, "trivia2 rta4"));
    T.procesarMensaje(1, SMS(111, "trivia2 rta5"));
    T.procesarMensaje(1, SMS(111, "trivia2 DEJAME JUGAR DE NUEVO!"));
    T.procesarMensaje(1, SMS(111, "trivia2 DE NADA, PERO POR FAVOR!"));
    T.procesarMensaje(1, SMS(111, "BAJA trivia2"));


    //T.mostrar(cout);
    //cout << T.usuarios();

    ifstream archivoTrivia("telco.txt");

    TelCO telcoCarga;
    telcoCarga.cargar(archivoTrivia);
    T.mostrar(cout);

    //cout << t1.ganadores().pertenece(126) << endl;


    //sms.mostrar(cout);

    //cout << intToString(0.7) << endl;

    //Trivia t = g.dameTrivia("boludeces");
    //t.mostrar(cout);




    /*x = t1.proxPregunta (125);

    cout << x.texto() << endl;
    cout << t1.puntajeAcumulado (125)<< endl;



/**

{
    string x = intToString(1234);
    //int x = 9;
    //char x2 = x;
    //string f = "fafa";
    //f += x2;
    cout << x;


    /**
    string hola = "    HOLA QUE TAL";
    cout << primerPalabra(sacarPrimerPalabra(hola));

    Lista<string> l = palabras("          hola     como            te va");


    cout << l.iesimo(0) << l.iesimo(0).length() << endl;
    cout << l.iesimo(1) << l.iesimo(1).length() << endl;
    cout << l.iesimo(2) << l.iesimo(2).length() << endl;
    cout << l.iesimo(3) << l.iesimo(3).length() << endl;



    Lista< pair<Usuario, int> > n1;
    pair<Usuario, int> up1 (125,2);
    n1.agregar(up1);
    pair<Usuario, int> up2 (126,3);
    n1.agregar(up2);
    pair<Usuario, int> up3 (127,4);
    n1.agregar(up3);
    pair<Usuario, int> up4 (128,0);
    n1.agregar(up4);

    Lista< pair<Usuario, int> > n2;
    pair<Usuario, int> h1 (125,150);
    n1.agregar(h1);
    pair<Usuario, int> h2 (126,220);
    n1.agregar(h2);
    pair<Usuario, int> h3 (127,50);
    n1.agregar(h3);
    pair<Usuario, int> h4 (128,0);
    n1.agregar(h4);






    /**
    Pregunta p1("Como te llamas?","No se",14);
    ofstream pregunta("pregunta.txt");
    p1.guardar(pregunta);
    p1.mostrar(cout);
    /**/

    /**
    ofstream archivo("pregunta.txt");

    int i=0;
    while (true){
        Pregunta p("Como te llamas? ","No se",14+i);
        p.guardar(archivo);
        p.mostrar(cout);
        i++;
    }
    /**/

    /**
    ifstream archivo("pregunta.txt");

    while (!archivo.eof()){
        Pregunta p;
        p.cargar(archivo);
        p.mostrar(cout);
    }
    /**/

    /**
    Pregunta p2;
    ifstream test("pregunta.txt");
    p2.cargar(test);

    p2.mostrar(cout);
    /**/

    /**
    SMS sms1(666, "chauchi");
    SMS sms2(666, "chauchi");
    SMS sms3(656, "chauchi");
    cout << (sms1 == sms2);
    cout << (sms1 == sms3);
    /*
    ofstream test("test.txt");
    SMS sms1(666, "chauchi");
    sms1.guardar(test);
    SMS sms2(777, "fuck");
    sms2.guardar(test);
    ifstream test2("test.txt");
    SMS sms3;
    sms3.cargar(test2);
    sms3.mostrar(cout);
    SMS sms4;
    sms4.cargar(test2);
    sms4.mostrar(cout);
    while (true){
        SMS sms(111, "infinito");
        sms.guardar(test);
        SMS sms0;
        sms0.cargar(test2);
        sms0.mostrar(cout);
    }
    /**/
    return 0;
}
